Skip to content

Support :python option in compile-time config#48

Merged
jonatanklosko merged 1 commit into
livebook-dev:mainfrom
AJReade:main
May 18, 2026
Merged

Support :python option in compile-time config#48
jonatanklosko merged 1 commit into
livebook-dev:mainfrom
AJReade:main

Conversation

@AJReade
Copy link
Copy Markdown
Contributor

@AJReade AJReade commented May 16, 2026

Summary

  • The :python option (e.g., "3.14t" for free-threaded builds) set via config :pythonx, :uv_init is read from Application.compile_env but never forwarded to Pythonx.Uv.fetch/3 or Pythonx.Uv.init/3
  • This causes uv sync to download the regular Python build instead of the requested variant

Context

PR #45 added the :python option to Pythonx.uv_init/2 (the runtime function), which works correctly. However, the compile-time config path in application.ex was not updated to forward this option. Users following the recommended Mix project setup via config :pythonx, :uv_init silently get the wrong Python variant.

Change

One line in lib/pythonx/application.ex — read :python from the config and include it in the opts passed to fetch/3 and init/3:

# Before
opts = [uv_version: uv_version]

# After
python = uv_init_env[:python]
opts = [uv_version: uv_version, python: python]

Verification

Tested on macOS aarch64. Before the fix, config :pythonx, :uv_init, python: "3.14t" downloads cpython-3.14.3-macos-aarch64-none (regular). After the fix, it downloads cpython-3.14.3+freethreaded-macos-aarch64-none and confirms GIL disabled.

The :python option (e.g., "3.14t" for free-threaded builds) was read
from Application.compile_env but never forwarded to Pythonx.Uv.fetch/3
or Pythonx.Uv.init/3. This caused uv to download the regular Python
build instead of the free-threaded variant.
Copy link
Copy Markdown
Member

@jonatanklosko jonatanklosko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call, thank you :)

@jonatanklosko jonatanklosko changed the title fix: forward :python option from compile-time config to uv fetch/init Support :python option in compile-time config May 18, 2026
@jonatanklosko jonatanklosko merged commit c45963b into livebook-dev:main May 18, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants